package demo.practice.uf;

public class P261 {


    public boolean validTree(int n, int[][] edges) {
        //树，首先要满足边数 = 点数 - 1，其次是保证联通。
        if (n == 1 && edges == null)
            return true;
        if (n < 1 || edges.length != n - 1) {
            return false;
        }

        UFRankUnion uf = new UFRankUnion(n);
        for (int[] edge : edges) {
            uf.join(edge[0], edge[1]);
        }

        return uf.getPlant()==1;

    }
}
